package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 抽奖类型活动
 */
@ApiModel(value = "com-lanchetech-entity-Lottery")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Lottery implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 消耗积分数量
     */
    @ApiModelProperty(value = "消耗积分数量")
    private BigDecimal costCoin;

    /**
     * 已参与人数
     */
    @ApiModelProperty(value = "已参与人数")
    private Integer joinCount;

    /**
     * 状态 0 已下架 1 已上架
     */
    @ApiModelProperty(value = "状态 0 已下架 1 已上架")
    private Byte status;

    /**
     * 参与活动的限制数量 0 表示不限制
     */
    @ApiModelProperty(value = "参与活动的限制数量 0 表示不限制")
    private Integer limitCount;

    /**
     * 删除 0 未删除 1 已删除
     */
    @ApiModelProperty(value = "删除 0 未删除 1 已删除")
    private Byte deleted;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间")
    private Date startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间")
    private Date endTime;

    /**
     * 奖品设置JSON
     */
    @ApiModelProperty(value = "奖品设置JSON")
    private String setting;

    /**
     * 拓展属性JSON
     */
    @ApiModelProperty(value = "拓展属性JSON")
    private String feature;

    /**
     * 类型（兼容积分商品类型） 2 幸运抽奖 3 九宫格抽奖 4 大盘转 5 刮刮卡
     */
    @ApiModelProperty(value = "类型（兼容积分商品类型） 2 幸运抽奖 3 九宫格抽奖 4 大盘转 5 刮刮卡")
    private Byte type;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 抽奖活动名称
     */
    @ApiModelProperty(value = "抽奖活动名称")
    private String name;

    /**
     * 抽奖活动说明
     */
    @ApiModelProperty(value = "抽奖活动说明")
    private String description;

    /**
     * 奖励消费金总额
     */
    @ApiModelProperty(value = "奖励消费金总额")
    private BigDecimal coinAmount;

    /**
     * 奖励嗨币总额
     */
    @ApiModelProperty(value = "奖励嗨币总额")
    private BigDecimal pointAmount;

    private static final long serialVersionUID = 1L;

    public static LotteryBuilder builder() {
        return new LotteryBuilder();
    }
}